/**
 *******************************************************************************
 * @FileName  : aes.h
 * @Author    : GaoQiu
 * @CreateDate: 2020-05-18
 * @Copyright : Copyright(C) GaoQiu
 *              All Rights Reserved.
 *******************************************************************************
 *
 * The information contained herein is confidential and proprietary property of
 * GaoQiu and is available under the terms of Commercial License Agreement
 * between GaoQiu and the licensee in separate contract or the terms described
 * here-in.
 *
 * This heading MUST NOT be removed from this file.
 *
 * Licensees are granted free, non-transferable use of the information in this
 * file under Mutual Non-Disclosure Agreement. NO WARRENTY of ANY KIND is provided.
 *
 *******************************************************************************
 */

#ifndef AES_H_
#define AES_H_

#include "utils/defs_types.h"

void AES_Init(void);

/**
 * @brief : AES encrypt data.
 * @param : out     pointer point to out buffer.
 * @param : in      pointer point to in buffer.
 * @param : key     pointer point to key.
 * @return: none.
 */
bool_t AES_Encrypt(uint8_t out[16], uint8_t in[16], uint8_t key[16]);


/**
 * @brief : AES decrypt data.
 * @param : out     pointer point to out buffer.
 * @param : in      pointer point to in buffer.
 * @param : key     pointer point to key.
 * @return: none.
 */
bool_t AES_Decrypt(uint8_t out[16], uint8_t in[16], uint8_t key[16]);

#endif /* AES_H_ */
